1. Field of the Invention
This invention relates to the field of programmable fuses, and particularly to systems and methods for determining a programmable fuse's state.
2. Description of the Related Art
Programmable fuses are commonly used as non-volatile memory devices, with a blown fuse representing, for example, a logic ‘1’, and an intact or unblown fuse representing a logic ‘0’. To determine whether a particular fuse is blown or intact, i.e., to determine its “state”, a current is usually applied through the fuse. A voltage is developed due to the applied current flowing through the fuse's resistance; this voltage is compared with a predetermined threshold value to determine whether the fuse represents a ‘1’ or a ‘0’.
A typical implementation using field-effect transistors (FETs) is shown in FIG. 1; bipolar transistors could also be used. A programmable fuse 10 is connected between a supply voltage VDD and the drain of a FET 12 at a node 14. In response to a BLOW command signal, FET 12 conducts a current sufficient to blow fuse 10. A second FET 16 is connected between node 14 and a circuit common point 18 (which can be ground or a non-zero voltage). In response to a bias voltage BIAS, FET 16 conducts a current Ifuse through fuse 10, such that a voltage Vfuse (=VDD−(Ifuse*Rfuse)) is developed at node 14, where Rfuse is the fuse's resistance. Vfuse is applied to the input of an inverter 20 which has an associated “trip” voltage; the inverter output OUT is ‘low’ when Vfuse is greater than the trip voltage (indicating that the fuse is intact), and is ‘high’ when Vfuse is less than the trip voltage (indicating that the fuse is blown). The function of inverter 20 could alternatively be implemented with a comparator.
This method generates a voltage Vfuse which decreases with the fuse's resistance, such that a fuse with a higher resistance is considered to be blown and a fuse with a lower resistance is considered to be intact. This method is reliable if a fuse's resistance is constant over its operational life. However, in some cases, fuse “regrowth” can occur if a fuse has not been blown properly, as can happen, for example, when different end-users use different equipment and/or conditions to blow the fuse. When this happens, the fuse's resistance can decrease significantly over its operational life. The fuse's apparent resistance can also vary due to changes or drift in the fuse state detection circuitry (e.g., FET 16, inverter 18, and voltage BIAS). These changes in resistance can cause the detected state of the fuse to change from blown to intact.